﻿using System;

namespace AdTech.Snap
{
    /// <summary>
    /// Defines an interface to log messages.
    /// </summary>
    public interface ILogger
    {
        /// <summary>
        /// Logs the given message.
        /// </summary>
        /// <param name="message">The message to log.</param>
        /// <param name="type">The <see cref="AdTech.Snap.LogType"/> of the message.</param>
        void Log(string message, LogType type);
        /// <summary>
        /// Logs an unhandled exception with verbose output.
        /// </summary>
        /// <param name="ex">The <see cref="System.Exception"/> that should be logged.</param>
        /// <remarks>The message will be logged with the <see cref="AdTech.Snap.LogType"/> Error.</remarks>
        void Log(Exception ex);
    }
}
